package reflect;

import bean.Vip;

import java.lang.reflect.Constructor;

/**
 * 通过反射机制如何通过构造方法创建对象。
 */
public class ReflectTest12 {
    public static void main(String[] args) throws Exception {
        // 不使用反射机制
        Vip vip = new Vip(1, "冲", "2020-01-01");


        // 使用反射机制
        Class<?> vipClass = Class.forName("bean.Vip");
        // 调用无参数构造方法
        Object obj = vipClass.newInstance();
        System.out.println(obj);
        // 调用有参数构造方法
        Constructor<?> declaredConstructor = vipClass.getDeclaredConstructor(int.class, String.class, String.class, boolean.class);
        Object obj2 = declaredConstructor.newInstance(1, "冲", "2020-01-01", true);
        System.out.println(obj2);
    }
}
